//package com.yuda.tools.log.controller;
//
//import com.alibaba.fastjson.JSONObject;
//import com.yuda.tools.log.entity.OssBean;
//import com.yuda.tools.log.entity.StudentInfo;
//import com.yuda.tools.log.service.LogDownloadService;
//import com.yuda.tools.log.utils.LogUtil;
//import com.yuda.tools.log.utils.OssUtil;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.jdbc.core.JdbcTemplate;
//import org.springframework.jdbc.core.RowMapper;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.ResponseBody;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//import java.io.File;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.concurrent.ConcurrentLinkedQueue;
//
//@Controller
//@RequestMapping("statDBLogDownLoad")
//public class LogDownloadController {
//
//	@Autowired
//	private JdbcTemplate jdbcTemplate;
//	private static String threadName = "";
//	private String downDir = null;
//	private int _testSession = 0;
//	private int _subjectIndex = 0;
//	private static int num = 0;
//	private static int num1 = 0;
//	private String xiTong = System.getProperty("os.name");
//	private static ConcurrentLinkedQueue<StudentInfo> queue = null;
//
//	Logger logger = LoggerFactory.getLogger(LogDownloadController.class);
//
//	@Autowired
//	private LogDownloadService logDownloadService;
//
//
//
//	@RequestMapping("execLog/{testSession}/{subjectIndex}")
//	public void execLog(@PathVariable("testSession") final int testSession,
//						@PathVariable("subjectIndex") final int subjectIndex,
//						HttpServletRequest request, HttpServletResponse response) {
//		downDir = LogUtil.getDownloadPath(request);
//		_testSession = testSession;
//		_subjectIndex = subjectIndex;
//		List<StudentInfo> list = logDownloadService.getStudents(testSession,subjectIndex);
//
//		int total = list.size();
//
//		List<StudentInfo> NewList = new ArrayList<>();
//		for (StudentInfo sInfo : list) {
//			StudentInfo studentInfo = new StudentInfo();
//			studentInfo.setAccessKey("LTAIssc9TCX1Pe0Q");
//			studentInfo.setAccessSecret("oCmWCl1vClDXhdyR9KWPe90CqJcl6P");
//			if(xiTong.toUpperCase().startsWith("WIN") ) {
//				studentInfo.setOssEndPoint(sInfo.getPaperOutEndpoint());////内网 paper_inner_endpoint    外网paper_out_endpoint  TODO
//			}else {
//				studentInfo.setOssEndPoint(sInfo.getPaperInnerEndpoint());//如果是linux系统用内网
//			}
//			studentInfo.setBucketName(sInfo.getPaperBucket());
//			studentInfo.setImsi(sInfo.getImsi());
//			studentInfo.setStudentId(sInfo.getStudentId());
//			studentInfo.setPaperId(sInfo.getPaperId());
//			studentInfo.setSubjectId(sInfo.getSubjectId());
//			studentInfo.setDir(LogUtil.getOssAnswerByType(2));
//			studentInfo.setLogFileName(studentInfo.getStudentId()+"_"+  studentInfo.getPaperId() + "_" + studentInfo.getSubjectId() + "_stat.db");//
//			studentInfo.setManageFileName(studentInfo.getStudentId()+ "_" +  studentInfo.getPaperId() + "_" + studentInfo.getSubjectId() +"_stat_manage.db");//
//			studentInfo.setName(sInfo.getName());
//			studentInfo.setSfzNum(sInfo.getSfzNum());
//			studentInfo.setZkzNum(sInfo.getZkzNum());
//			studentInfo.setExamName(sInfo.getExamName());
//			studentInfo.setExamRoomName(sInfo.getExamRoomName());
//			studentInfo.setExamRoomAddress(sInfo.getExamRoomAddress());
//			studentInfo.setPcNo(sInfo.getPcNo());
//
//			NewList.add(studentInfo);
//		}
//
//
//	}
//
//
//
//	@Deprecated
//	private void doDownLoadLog(ConcurrentLinkedQueue<StudentInfo> list, String downDir, int type) {
//		if(!list.isEmpty()) {
//			OssBean ob = null;
//			File file = null;
//			int flag = 0;
//			int count = 0;
//			for(StudentInfo sInfo:list) {
//				System.out.println("开始下载------》第  "+count++ +"个 ....");
//				ob = new OssBean();
//				ob.setAccessKey(sInfo.getAccessKey());
//				ob.setAccessSecret(sInfo.getAccessSecret());
//				ob.setBucketName(sInfo.getBucketName());
//				ob.setOssEndPoint(sInfo.getOssEndPoint());
//				ob.setKey(sInfo.getDir()+sInfo.getLogFileName());//下载oss路径
//				System.out.println(ob.getKey());
//				System.out.println(ob.getBucketName());
//				System.out.println(ob.getOssEndPoint());
//				String dowDirFile = downDir+"/" +sInfo.getSubjectId();
//				File dowFile = new File(dowDirFile);
//				if(!dowFile.exists()){
//					dowFile.mkdirs();
//				}
//				ob.setDownloadFilePath(dowDirFile+"/"+sInfo.getLogFileName());//下载后保存本地路径
//
//				flag = OssUtil.downLoadFile(ob);
//				logger.info("检查logFileName------_flag》  "+flag +"");
//				file = new File(ob.getDownloadFilePath());
//				if (!file.exists()) {// 说明文件不存在从manage管理机中下载
//					ob.setKey(sInfo.getDir() + sInfo.getManageFileName());
//
//					String manageFile = downDir + "/" + sInfo.getSubjectId();
//					File manFile = new File(manageFile);
//					if (!manFile.exists()) {
//						manFile.mkdirs();
//					}
//
//					logger.info("1检查不存在----从manage管理机中下载Path:" + manageFile + "/" + sInfo.getManageFileName());
//					ob.setDownloadFilePath(manageFile + "/" + sInfo.getManageFileName());
//					flag = OssUtil.downLoadFile(ob); // 在下载一次
//
//					file = new File(manageFile);
//					logger.info("1检查manageFileName------_flag》  " + flag + "");
//				}
//
//				if (flag == 1) {
//					sInfo.setFileName(ob.getDownloadFilePath());
//					try {
//						logDownloadService.saveLogForMysql(sInfo, type);
//					} catch (SQLException e) {
//						e.printStackTrace();
//					}catch (ClassNotFoundException e) {
//						e.printStackTrace();
//					}catch (Exception e) {
//						e.printStackTrace();
//					}
//				}else {
//					logDownloadService.saveError(sInfo);
//				}
//				count();
//			}
//			logger.info("==========全部下载 SUCCESS============>>");
//		}
//	}
//
//
//
//	@ResponseBody
//	@RequestMapping(value="getProgress")
//	public JSONObject getProgress() {
//		JSONObject json = new JSONObject();
//		double num_d = num;
//		double num_d1 = 1;
//		int a = (int) Math.round((num_d/num_d1)*100);
//		json.put("num", num);
//		json.put("num1", num1);
//		json.put("progress", a+"%");
//		boolean f = false;
//		if(num == num1&&num1!=0) {
//			f = true;
//			num = 0;
//			num1 = 0;
//		}
//		json.put("f", f);
//		json.put("t", getStr(_testSession,_subjectIndex));
//		return json;
//	}
//
//	@ResponseBody
//	@RequestMapping(value="initProgress")
//	public JSONObject initProgress() {
//		JSONObject json = new JSONObject();
//		json.put("num1", num1);
//		return json;
//	}
//
//	public String getStr(int i, int j) {
//		StringBuffer stringBuffer = new StringBuffer();
//		String day = "";
//		String count = "";
//		if(i==0) {
//			day = "第一天";
//		}else if(i==1) {
//			day = "第二天";
//		}else if(i==2) {
//			day = "第三天";
//		}
//		if(j==0) {
//			count = "第一场";
//		}else if(j==1) {
//			count = "第二场";
//		}else if(j==2) {
//			count = "第三场";
//		}else if(j==3) {
//			count = "第四场";
//		}
//		return stringBuffer.append(day).append(count).toString();
//	}
//
//	public synchronized void count() {
//		num++;
//	}
//
//	private void goMethod1(int type) {
//
//		while(!queue.isEmpty()) {
//			OssBean ob = null;
//			File file = null;
//			int flag = 0;
//			StudentInfo sInfo = null;
//			sInfo = queue.poll();
//			ob = new OssBean();
//			ob.setAccessKey(sInfo.getAccessKey());
//			ob.setAccessSecret(sInfo.getAccessSecret());
//			ob.setBucketName(sInfo.getBucketName());
//			ob.setOssEndPoint(sInfo.getOssEndPoint());
//
//			ob.setKey(sInfo.getDir() + sInfo.getLogFileName());// 下载oss路径
//			String dowDirFile = downDir + "/" + sInfo.getSubjectId();
//			File dowFile = new File(dowDirFile);
//			if (!dowFile.exists()) {
//				dowFile.mkdirs();
//			}
//			ob.setDownloadFilePath(dowDirFile + "/" + sInfo.getLogFileName());// 下载后保存本地路径
//
//			OssBean newOb = null;
//			newOb = OssUtil.changeBucketName(ob,xiTong);//循环所有bucketName找出存入时间最新的Log文件
//			OssBean manageOb = null;
//			if(newOb == null) {//如果学生没找到，去manage下载
//
//					/*ob.setKey(sInfo.getDir() + sInfo.getManageFileName());
//
//					String manageFile = downDir + "/" + sInfo.getSubjectId();
//					File manFile = new File(manageFile);
//					if (!manFile.exists()) {
//						manFile.mkdirs();
//					}
//
//					manageOb = OssUtil.changeBucketName(ob,xiTong);
//
//					if(manageOb == null) {//不存在存入error表格
//						logDownloadService.saveError(sInfo);
//					}else {
//						logger.info("1检查不存在----从manage管理机中下载Path:" + manageFile + "/" + sInfo.getManageFileName());
//						manageOb.setDownloadFilePath(manageFile + "/" + sInfo.getManageFileName());
//						flag = OssUtil.downLoadFile(manageOb); // 在下载一次
//						flag = 0;
//						//file = new File(manageFile);
//						logger.info("1检查manageFileName------_flag》  " + flag + "");
//					}*/
//					logger.info(sInfo.getSchoolName()+" "+sInfo.getStudentName()+" "+sInfo.getStudentId()+"=====>没有找到 日志Log");
//					logger.info(sInfo.getSchoolName()+" "+sInfo.getStudentName()+" "+sInfo.getStudentId()+"=====>没有找到 日志Log");
//					logger.info(sInfo.getSchoolName()+" "+sInfo.getStudentName()+" "+sInfo.getStudentId()+"=====>没有找到 日志Log");
//
//			}else {
//				flag = OssUtil.downLoadFile(newOb);
//				sInfo.setBucketName(newOb.getBucketName());//改为实际存在的bucket空间
//			}
//
//			//直接下载
//			/*OssBean newOb = ob;
//			flag = OssUtil.downLoadFile(newOb);
//			sInfo.setBucketName(newOb.getBucketName());
//			*/
//			if (flag == 1) {
//
//
//				//特殊 手动上传
//				OssBean teShuOss = new OssBean();
//				teShuOss.setAccessKey(newOb.getAccessKey());
//				teShuOss.setAccessSecret(newOb.getAccessSecret());
//				teShuOss.setDownloadFilePath(dowDirFile + "/" + sInfo.getStudentId()+"_"  + sInfo.getPcNo()+ "_stat.db");
//				teShuOss.setBucketName("defanswer");
//				teShuOss.setKey(LogUtil.getOssAnswerByType(2)+sInfo.getStudentId()+"_"  + sInfo.getPcNo()+ "_stat.db");
//	    		if(xiTong.toUpperCase().startsWith("WIN") ) {
//	    			teShuOss.setOssEndPoint("oss-cn-qingdao.aliyuncs.com");////内网 paper_inner_endpoint    外网paper_out_endpoint  TODO
//				}else {
//					teShuOss.setOssEndPoint("oss-cn-qingdao-internal.aliyuncs.com");//如果是linux系统用内网
//				}
//
//	    		logger.info(teShuOss.getBucketName()+"=====> 特殊 手动上传 "+teShuOss.getKey() );
//
//				flag = OssUtil.downLoadFile(teShuOss);
//				if (flag == 1) {
//					sInfo.setBucketName(teShuOss.getBucketName());
//					saveLogMySQL(teShuOss,sInfo,type);
//				} else {
//					sInfo.setBucketName(newOb.getBucketName());//改为实际存在的bucket空间
//					saveLogMySQL(newOb,sInfo,type);
//				}
//			} else {
//
//				/*OssBean newOss = new OssBean();
//	    		newOss.setAccessKey(newOb.getAccessKey());
//	    		newOss.setAccessSecret(newOb.getAccessSecret());
//	    		newOss.setDownloadFilePath(newOb.getDownloadFilePath());
//	    		newOss.setBucketName("defanswer");
//	    		newOss.setKey(newOb.getKey());
//	    		if(xiTong.toUpperCase().startsWith("WIN") ) {
//					newOss.setOssEndPoint("oss-cn-qingdao.aliyuncs.com");////内网 paper_inner_endpoint    外网paper_out_endpoint  TODO
//				}else {
//					newOss.setOssEndPoint("oss-cn-qingdao-internal.aliyuncs.com");//如果是linux系统用内网
//				}
//
//	    		logger.info(newOss.getBucketName()+"=====>");
//
//				flag = OssUtil.downLoadFile(newOss);
//				sInfo.setBucketName(newOss.getBucketName());
//
//				if (flag == 1) {
//					saveLogMySQL(newOss,sInfo,type);
//				} else {*/
//					logDownloadService.saveError(sInfo);
//				//}
//
//			}
//			count();
//		}
//
//		logger.info("==========全部下载 SUCCESS============>>");
//	}
//
//	private void saveLogMySQL(OssBean newOb,StudentInfo sInfo,int type) {
//		if(newOb != null) {
//			sInfo.setFileName(newOb.getDownloadFilePath());
//		}
//		try {
//			logDownloadService.saveLogForMysql(sInfo, type);
//		}catch (Exception e) {
//			e.printStackTrace();
//			logger.error("Exception异常"+e.getStackTrace().toString());
//		}
//	}
//
//
//	/**
//	 *  手动 downDBLog
//	 *
//	 * */
//	@RequestMapping(value = "/downDBLog")
//	@ResponseBody
//    public  void downjson(HttpServletRequest request) {
//
//		OssBean newOss = new OssBean();
//		newOss.setDownloadFilePath("C:\\Users\\Bean\\Desktop\\805log\\13e3e613b6b493c343a9e253ed46b4ba_21_stat.db");
//
//		StudentInfo sInfo = new StudentInfo();
//		sInfo.setStudentId("13e3e613b6b493c343a9e253ed46b4ba");
//		sInfo.setBucketName("huananpaper");
//		saveLogMySQL(newOss,sInfo,2);
//		logger.info("==========全部下载 SUCCESS============>>");
//	}
//
//	/**
//	 *  手动 downDBLog
//	 *
//	 * */
//	@RequestMapping(value = "/downDBLog2")
//	@ResponseBody
//    public  void downDBLog2(HttpServletRequest request) {
//
//		downDir = LogUtil.getDownloadPath(request);
//		//特殊 手动上传
//		OssBean teShuOss = new OssBean();
//		teShuOss.setAccessKey("LTAIssc9TCX1Pe0Q");
//		teShuOss.setAccessSecret("oCmWCl1vClDXhdyR9KWPe90CqJcl6P");
//		teShuOss.setDownloadFilePath(downDir + "/13e3e613b6b493c343a9e253ed46b4ba_stat_49.db");
//		teShuOss.setBucketName("defanswer");
//		teShuOss.setKey(LogUtil.getOssAnswerByType(2)+"13e3e613b6b493c343a9e253ed46b4ba_stat_49.db");
//		if(xiTong.toUpperCase().startsWith("WIN") ) {
//			teShuOss.setOssEndPoint("oss-cn-qingdao.aliyuncs.com");////内网 paper_inner_endpoint    外网paper_out_endpoint  TODO
//		}else {
//			teShuOss.setOssEndPoint("oss-cn-qingdao-internal.aliyuncs.com");//如果是linux系统用内网
//		}
//
//		logger.info(teShuOss.getBucketName()+"=====> 特殊 手动上传 日志："+teShuOss.getKey() );
//
//		int flag = OssUtil.downLoadFile(teShuOss);
//		logger.info("==========全部下载 SUCCESS============>> flag " + flag);
//	}
//}
